Web based video enhancement apparatus method and article of manufacture

ABSTRACT

Presented herein is a video enhancer plug-in for a web browser that may either interface directly with the browser or indirectly as a plug-in for another more general multimedia browser plug-in. The video enhancer consists primarily of video enhanced scripts and a library of specialized routines. A script is intended to provide a visually interesting display within a web browser environment and calls upon routines in the library to do so. These routines, for example, may take live video input from a video camera and perform specific functions such as locating the head of an individual within the camera&#39;s field of view. Because the script runs within a web browser, it allows components of the system to be widely separated from one another, so long as they are connected across a wide area network such as the Internet. Consequently, another aspect of the invention is a computer-implemented system for playing a game, where a single player may utilize a script located on a remote server, or may play against other players who are either connected to the first player through the remote server or linked directly. Also included in the present invention is a method for video enhancement over a wide area network, and an article of manufacture comprising a computer readable medium containing code segments for providing a video enhancer for a web browser.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to U.S. patent applications attorney docketnumber ELECP012 titled SYSTEM, METHOD AND ARTICLE OF MANUFACTURE FORDETECTING COLLISIONS BETWEEN VIDEO IMAGES GENERATED BY A CAMERA AND ANOBJECT DEPICTED ON A DISPLAY by inventor Katerina Huong Nguyen andattorney docket number ELECP013 titled SYSTEM, METHOD AND ARTICLE OFMANUFACTURE FOR TRACKING A HEAD OF A CAMERA-GENERATED IMAGE OF A PERSONby inventors Katerina Huong Nguyen and Jeffrey Layne Edwards both filedconcurrently herewith on Jul. 30, 1999 and incorporated herein byreference.

BACKGROUND OF THE INVENTION

1. The Field of the Invention

The present invention relates to networks enabled with digital video,and more particularly to a video plug-in for a web browser.

2. The Related Art

Video teleconferencing is typically implemented by sending videotransmissions over standard telephone connections. In the typical videoteleconferencing set-up each user has a video camera that transmits animage over standard telephone lines to a monitor at the site of theother user. Video teleconferencing over telephone lines, however, tendsto limit users to configurations involving only two sites.

The rise of the Internet and inexpensive video cameras presently allowsdigitized video images to be transmitted across the Internet or anyother wide area network (WAN). Video conferencing over a WAN involvessending a digitized video signal from a video camera to an InternetService Provider (ISP) connected to the Internet or, more generally, toa server connected to a WAN. The digitized video signal is sent acrossthe WAN to one or more computers that may each display the video signalon a monitor. Information such as digitized video may be transmittedacross a WAN by packet switching between servers according to the TCP/IPprotocol. This arrangement allows multiple computers to simultaneouslyshare video with one another. Therefore, video conferencing over a WANhas advantages over video teleconferencing in that more sites than justtwo can be conveniently and inexpensively connected. Vide conferencingover a WAN, however, is still limited to sharing real-time images anddoes not take advantage of image enhancement possibilities.

Other applications for digital video over the Internet and WANs havelead to increased sharing of video files and the rise of “webcams.”Video files, pre-recorded video ranging from several seconds to manyminutes in length, may be transmitted from a sender to one or morereceivers simultaneously across the Internet. A receiver may store thevideo file and view it repeatedly, provided that the receiver has thenecessary software to play the video file. A video file may also be madeavailable, for instance, on a webpage or a FTP site located on a remoteserver so that multiple users may choose to download it at theirconvenience.

A webcam is a digital video camera set up to provide live video to theInternet or a WAN such that any user connected to the network may chooseto view what the camera is imaging. Webcams are increasingly used tomake available, for example, live images of traffic conditions, weather,public meetings, and fish bowls, to users anywhere in the world withInternet access. To simplify the viewing process, some web browsersinclude a module designed to display live video, so that the user neednot run a separate software program. It should be noted that as browsersbecome increasingly more powerful they become increasingly similar tooperating systems. For the purposes of this application, a browser couldbe an operating system so long as the operating system includes thecapabilities typically attributable to browsers such as the ability toconnect to remote sites across a WAN and accept software extensionmodules.

Software extension modules, commonly known as a plug-ins, provideadditional functionalities to other software programs. A plug-in, onceinstalled, becomes a seamless part of the software within which it isinstalled. Plug-in programs may themselves accept additional plug-ins toexpand their own capabilities. For example, ShockWave produced byMacromedia, a popular multimedia player plug-in for web browsers, hasdiscrete modules for specific purposes, for example one module forplaying sounds and another module for playing animations. ShockWave maybe extended with additional plug-ins that act as further modules forother media applications such as live video.

Like text files, sound files, video files, and live video, anything in adigitized format may be sent across a WAN. Consequently, plug-ins arefrequently made available over the Internet for downloading from aremote server. Other programs may also be obtained via the Internet. Onesuch program designed to perform a specific operation is called ascript. An example of a script is an Applet, a program written in theJava programming language, which can be distributed over a WAN andexecuted by a Java-enabled web browser. Scripts written in otherprogramming languages may also be distributed over a WAN.

A script may require certain plug-ins to be available in order toperform its function properly. For example, one might design a script toguide a user to select an appropriate automobile for their needs byprompting the user to answer specific questions. As part of theselection process the script might display images of vehicles the userhas to choose from. In order to display those images, the script wouldaccess the plug-in that enables image viewing and supply that plug-inwith file names and locations of the images to be displayed. Thoseaddresses may be on the same computer as the browser, or on a networkserver that the computer is attached to, or on a remote serveraccessible over a WAN.

The Internet has also expanded a user's options for communicating withothers, in addition to providing a means for accessing programs and datafrom remote sites. Accordingly, a person can send and receive electronicmessages (“e-mail”) over a WAN with typically only a brief time delay.Electronic messages may also be shared in real-time between individualsconnected to the Internet; this process has come to be referred to as“chat” and is frequently conducted in “chatrooms,” that are dedicatedwebsites where multiple individuals can converse simultaneously. Achatroom is the functional equivalent of the telephone party-line,except that the conversation is carried out with text rather than withvoice.

As communications technologies have been developed for the Internetthose technologies have been applied to gaming. It is now possible todownload gaming software from a website and play it on a host computer.It is also possible to play a game over the Internet where the gamingsoftware is located on a remote server rather than on the user'scomputer. Further, multiple players in multiple locations may take partin the same game over the Internet.

In addition to developments concerning the Internet, the recentdevelopment of low-cost image sensors used in cameras has lead companiesto develop more products that include imaging. For instance, Nintendooffers a black and white camera that attaches to a Game Boy personalvideo game system and a paint program that allows a user to manipulateand alter the images. The Game Boy camera has a lens that rotates so theuser can obtain self-portraits. Mattel Media, too, offers a BarbieDigital Camera that takes color images and comes with software that letschildren edit their images into Barbie scenes and to further print themon cards and stickers.

Further advancements have also been made in image analysis andrecognition. For example, Scientific American reported on thedevelopment of a system called Person Finder that can track one personas he or she moves around in a room (“Smart Rooms,” Scientific American,April 1996). The system records the image of the person and the room,determines where the person is, creates a virtual model of the person,and projects the model into a virtual world so that, for instance,imaginary characters can interact with the smart-room user.

Absent from this mix of digital technologies is software that will allowone or more live video images from one or more personal digital videocameras to be incorporated into a virtual environment displayed withinone or more browsers so that the person or people can use their image orimages to control events within the virtual environment.

SUMMARY OF THE INVENTION

The present invention describes a video enhancer for a web browser. Thevideo enhancer consists of a library of video enhancement routines, abrowser extension module coupling the library of routines to the webbrowser, and a video enhanced script coupled to the browser extension sothat it may utilize at least one of the enhancement routines within thelibrary to provide an enhanced video display within the web browser. Insome embodiments of the present invention the library of routines areprovided as dynamically linked libraries (DLLs) such as C++ DLLs. Insome embodiments the browser extension module includes a translator anda multimedia extension module, such as the ShockWave plug-in produced byMacromedia. Other embodiments may be fully integrated to be able tointerface directly with a web browser and not need the multimediaextension module.

The video enhancer of the present invention includes a video enhancedscript that may be an Applet running in conjunction with the operatingweb browser or running independently. The video enhanced script callsupon enhanced video routines. Some routines, for instance, provide theability to identify and track the head of a person in front of a videocamera, while other routines may provide the ability to determine whenat least two tracked features collide.

Another embodiment of the present invention is a computer-implementedsystem for playing a game. This computer-implemented system includes afirst computer, a first video camera coupled to the first computer, aweb browser operating on the first computer, and a video enhancer forthe web browser. The video enhancer further includes a library of videoenhancement routines that may be in communication with the first videocamera, a browser extension module coupling the library to the webbrowser, and a video enhanced script. The video enhanced script isitself coupled to the web browser and may use at least one enhancementroutine of the plurality of routines in the library to provide enhancedvideo displays within the web browser. Additional embodiments of thecomputer-implemented system also include a wide area network (WAN) and aserver connected to the WAN, with the first computer being connected tothe WAN.

In some embodiments of the computer-implemented system the videoenhanced script allows the game to be played while the video enhancedscript is being downloaded to the first computer from the server via theWAN. In other embodiments the video enhanced script allows a player tosend information, such as a cookie, to a server to be retained forfuture reference after a game is over. In further embodiments the videoenhanced script maintains communication with a remote server through theoperating web browser. Yet other embodiments of the computer-implementedsystem further include a second computer that may include a videocamera, and is configured like the first computer, though it need notinclude the video enhancer if the first computer is so equipped.

Another embodiment of the present invention is a method for videoenhancement over a wide area network. The method includes providing aweb browser, providing a video enhancer for the web browser, opening theweb browser, and executing a selected video enhanced script. In someembodiments the method for video enhancement also includes, beforeexecuting the script, determining whether a more current version of thevideo enhancer is available. If an update is available the user isqueried whether the more current version should be obtained, and if theuser requests the update it is obtained. In some embodiments obtainingthe video enhancer update includes downloading the update from a serverconnected to a WAN and installing the update within the web browser.

In some embodiments of the method for video enhancement the process ofexecuting the selected script further includes passing a command fromthe selected script to the browser extension to be executed, where thecommand specifies at least one video enhancement routine and includesparameters required by those routines. In other embodiments executingthe selected script instead involves passing a command from the selectedscript to a multimedia extension module, passing the command from themultimedia extension module to a translator, and executing at least onevideo enhancement routine.

A further embodiment of the present invention is an article ofmanufacture comprising a computer readable medium containing codesegments for providing a video enhancer for a web browser. The videoenhancer includes a library of at least one video enhancement routinesand a browser extension module operative to couple the library to theweb browser. In some embodiments the video enhancer further includes atleast one video enhanced script that may be coupled to the web browserto utilize at least one video enhancement routine.

These and other aspects and advantages of the present invention willbecome more apparent when the Description below is read in conjunctionwith the accompanying Drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be readily understood by the followingdetailed description in conjunction with the accompanying drawings, withlike reference numerals designating like elements.

FIG. 1 is an overview of the basic elements of a system of computersjoined across a wide area network;

FIG. 2 is a flow chart for the process of obtaining a video enhancer ofthe present invention from a server;

FIG. 3 is a flow chart for the process of selecting and executing ascript;

FIG. 4 is a schematic diagram of a computer system including a videoenhancer of the present invention;

FIG. 5 is a flow chart for the process for executing a video enhancedscript where the browser extension module includes a multimediaextension module and a translator;

FIG. 6 is a flow chart for the process for downloading and executing avideo enhanced script; and

FIG. 7 is a flow chart for the process performed by a server connectedto one or more computer systems across a WAN.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 illustrates an overview of the basic elements of a system ofcomputers joined across a wide area network. The entire system 1consists of a wide area network (WAN) 2, such as the Internet,connecting service providers 3 and allowing the sharing of data packetsaccording to the TCP/IP protocol. Connected to WAN 2 is a serviceprovider 3 that is further connected to a server 4 that is configured toboth distribute and receive files, data, and programs across the WAN 2.A computer system 5 of a user is connected through a service provider 3′to the WAN 2 in order to share files, data, and programs with server 4.Additional computer systems 5′ may similarly be connected to the WAN 2.Each computer system 5 comprises at least an operating system 6, storagemedia 7 for saving data, files, and programs, and a web browser 8 tofacilitate communication between the computer system 5 and the serviceprovider 3′.

FIG. 2 shows a flow chart for the process 10 of obtaining a videoenhancer of the present invention from a server 4. In other embodiments,described below, the video enhancer of the present invention may beobtained on a CD-rom, magnetic storage disk, or it may be provided aspart of a package of other software. In the first act or operation 12 aweb browser 8 is opened. In the next act or operation 14 the userdetermines whether the video enhancer is already present within the webbrowser 8. Act or operation 14 may be prompted by the user's desire toobtain the video enhancer because of a pre-existing awareness of itsdesirability. Alternately, the user may attempt to run an applicationwithin the web browser 8 environment that requires the video enhancer,however that video enhancer is missing and the user is thereforeprompted to obtain the video enhancer. If the video enhancer is presentwithin the web browser 8, then the process 10 is finished. Otherwise,the user progresses to act or operation 16.

In act or operation 16 the web browser 8 is connected to a server 4.Connection to the server 4 is made by creating a connection to a WAN 2such as the Internet and by providing the web browser 8 with the IPaddress of the server 4. The IP address of the server 4 may be obtainedin many ways. For example, the IP address may be specified by anexisting application that will not run without the required videoenhancer, it may be obtained by performing a search of the World WideWeb using a search engine, it may be obtained from promotionalmaterials, or it may be obtained from other users. Once the web browser8 has connected to the server 4, in act or operation 18 the desiredvideo enhancer is downloaded to the user's computer system 5 to bestored on a user specified storage medium 7. That medium 7 may be theworking memory of the user's computer 5, a storage device connected tothe computer 5 such as a magnetic disk drive, or a storage deviceconnected to a network of which the user's computer 5 is a part. Oncethe video enhancer is saved to a storage medium 7 the process 10 iscomplete.

FIG. 3 shows a flow chart for the process 20 of selecting and executinga script. In the first act or operation 22 the user opens a web browser8. In the next act or operation 24 the user accesses a server 4configured to store one or more scripts and selects a script for one ormore desirable functionalities. For example, a script may have thefunctionality of performing a game.

In act or operation 16 the selected script looks to the user's webbrowser 8 and to the server 4 to determine if the server 4 has a morecurrent (updated) video enhancer than is present within the user's webbrowser 8. If the video enhancer in the user's web browser 8 is current,then the script is downloaded in act or operation 32. If an updatedvideo enhancer is available on the server 4, the user is asked in act oroperation 28 whether she would like the updated video enhancer. If theuser requests the updated video enhancer, then it is downloaded from theserver 4 to the user's web browser 8 and installed therein in act oroperation 30, prior to downloading the selected script in act oroperation 32. Alternately, if the user does not want the updated videoenhancer at act or operation 28 then the selected script is downloadedin act or operation 32.

In act or operation 34 the selected script is executed, as will bedescribed in greater detail below with reference to FIG. 3. Once theselected script has been executed, the user has the option in act oroperation 36 to execute the script again. If the user so chooses, act oroperation 34 is repeated, otherwise the process 20 is complete.

FIG. 4 is a schematic diagram of a computer system 5 including a videoenhancer 42 for a web browser 8, an operating system 6, and a wide areanetwork (WAN) 2. The video enhancer 42 further includes a library ofvideo enhancement routines 50, a browser extension module 52, and avideo enhanced script 54. Both the browser extension module 52 and thelibrary of video enhancement routines 50 may be obtained by downloadingthem from a remote server 4 over the WAN 2 to the user's computer system5. Alternately, both the browser extension module 52 and the library ofvideo enhancement routines 50 may be downloaded to a local server 4 towhich the user's computer system 5 is connected. In another embodimenteither or both of the browser extension module 52 and the library ofvideo enhancement routines 50 may be maintained on a remote server 4 andaccessed over the WAN 2.

The operating system 6 provides a basic framework within which all ofthe accessories on the user's computer 5 may operate, including the webbrowser 8 and a video camera 60. Examples of operating systems 6 includeApple's operating system for the Macintosh line of computers,Microsoft's Windows 98, and Linux. The web browser 8, when coupled withthe browser extension module 52, becomes a program capable of executinga video enhanced script 54. Examples of web browsers 44 includeMicrosoft's Internet Explorer and Netscape's Navigator. In order toexecute a video enhanced script 54, the browser extension module 52 mayrun one or more video enhancement routines from the library 50, whichmay, in turn, require the video output from the video camera 60. Itshould also be noted that although the output from a video camera 60 mayat times be preferable, any digitized video image can be used. Forexample, AVI and MPG files, representing two different formats fordigitized video files, or streaming video received across a WAN 2 may besubstituted for the output from a video camera 60. It is likewiseunimportant where the video image comes from, so the video camera 60supplying the image may be linked to computer system 5 by WAN 2, or itmay come from a stored video file on a remote server 4.

The browser extension module 52 may be a stand-alone program, however,in other embodiments of the present invention the browser extensionmodule 52 is comprised of a multimedia extension module 56 and atranslator 58. In such an embodiment the multimedia extension module 56may be a commercial program such as ShockWave produced by Macromedia.Such multimedia extension modules 56 are ordinarily capable ofinterfacing with the operating system 6, the web browser 8, and the WAN2, but may not be able to communicate with the library of videoenhancement routines 50. Consequently, when browser extension module 52includes a multimedia extension module 56 it also must include atranslator 58 to facilitate communication between the multimediaextension module 56 and the library of video enhancement routines 50.

FIG. 5 shows a flow chart for the process 70 for executing a videoenhanced script 54 where the browser extension module 52 includes amultimedia extension module 56 and a translator 58. In the first act oroperation 72 the multimedia extension module 56 receives a command fromthe video enhanced script 54 to run a particular video enhancementroutine from the library of routines 50. Included in the command fromthe video enhanced script 54 should be any parameters required by thevideo enhancement routine. The multimedia extension module 56 sends thecommand to the translator 58 where it is parsed according to a protocolthat specifies data structure.

In act or operation 74 the parsed command is translated into code thatis recognizable by the video enhancement routine. The translated commandis then passed to the video enhancement routine. The video enhancementroutine next executes the command in accordance with the providedparameters in act or operation 76. For example, the video enhancedscript 54 might involve a game for practicing soccer in which the playerstands in front of a video camera 60 and sees herself on a monitor in avirtual world in which she's standing on a soccer field. In this virtualworld seen on the monitor soccer balls drop from the sky and the objectis for her to move her head so as to “head” the soccer balls towards anet.

This script 54 might call first for a determination of where the girl'shead is located and then call for a determination of whether it hascollided with a soccer ball. The multimedia extension module 56 firstreceives a command from the script 54 to execute a video enhancementroutine for head tracking, with the command including necessaryparameters, for instance a clock signal or a frame refresh rate. Thevideo enhancement routine for head tracking receives this command fromthe translator, which might request, for example, a determination ofhead location, contour, and orientation. The head tracking routine mightthen make these determinations by applying image recognition techniquesto the digitized video data.

Similarly, script 54 might then ask a collision detection routine todetermine whether the girl's head has collided with a virtual ball thatscript 54 has generated. The command for collision detection wouldinclude parameters necessary for the routine to make the determination,such as the data previously returned from the head tracking routine.Next, the output from this video enhancement routine, for instance thatthe head and the ball had collided and the points of contact on each, issent back to the translator 58 to be parsed in act or operation 78.Then, in act or operation 80 this output is translated into code havinga data structure that is recognizable by the multimedia extension module56, and passed back to the multimedia extension module 56.

FIG. 6 shows a flow chart for the process 90 for downloading andexecuting a video enhanced script 54. The process begins with act oroperation 92 in which a script 54 is downloaded to the user's computer5. Downloading is accomplished by opening a web browser 8, accessing aserver 4 on which the script 54 resides, and copying the script 54 tothe computer 5 on which the web browser 8 resides. Accessing the server4 is achieved by finishing the web browser 8 with the server's IPaddress, thus allowing the web browser 8 to contact the server 4 acrossa WAN 2 such as the Internet. Copying the script 54 to the user'scomputer 5 involves having the server 4 on which the script 54 is storeddivide the script 54 into packets that can be routed across the WAN 2 tobe reassembled by another server 4 in communication with the user'scomputer 5. The script 54, when received by the user's computer 5, canthen be stored, for example, in RAM, on a magnetic recording medium 7,or on a server 4 in communication with the computer 5.

In act or operation 94 the script 54 asks whether a cookie is desired.If a cookie is desired it will be obtained in act or operation 96 from aserver 4, such as the one that delivered the script 54. The cookie willthen be stored either in RAM or on a storage device such as a hard drive7. Cookies may be used to record one's activities, for example, whenaccessing a website. Cookies also may record personal information, suchas passwords and personal preferences, so the when a user returns to asite, the user may be presented with customized information.

Once a cookie has been obtained, or if no cookie was sought, the videoenhancer 42 runs script 54 in act or operation 98, as described abovewith reference to FIG. 3. The video enhancer 42 in act or operation 100then displays the results. The results may be displayed on one or moremonitors, where some monitors may be connected to the user's computer 5via a WAN 2. The displayed results may, for example, show a continuallyrefreshed video of the field of view of a video camera 60 with ananimated feature superimposed. For instance, a person standing in a roombefore a video camera 60 might see on a monitor an image of himself inthe room with a gremlin hopping on his head. In other embodiments theresults may show an actual image of a person in the field of view of avideo camera 60 against a virtual backdrop. The person in the aboveexample might see a true image of himself against the backdrop of acartoon room, or an outdoor scene, or in the midst of an animatedcartoon, a non-animated movie segment, or a music video. In furtherembodiments the displayed results may show an actual image of a personin the field of view of a video camera 60 with superimposed animatedbody parts or accessories such as a hat or a sword. Other embodimentsmay combine elements described above. For example, a person standingbefore a video camera 60 might see himself with superimposed chaps, hat,and holster against a background that's a still image of the OK Corralwith animated tumbleweeds rolling past in the distance.

Yet other embodiments of the present invention envision multi-playergames in which players interact from different locations across a WAN 2.In the above mentioned example of the person seeing himself at the OKCorral, a second player standing in front of a second video camera 60could appear in the first person's image as an adversary. Here, the twoplayers might be either be communicating directly across a WAN 2, orthey may be communicating across a WAN 2 through a remote server 4 notdirectly linked to either players' computer 5. In some instances it maybe desirable to provide cartoon renderings of remotely located players,rather than real-time images, to reduce the amount of data that must betransmitted. In other cases a real-time image that is not refreshed asfrequently may be used, and in other cases only a part of the body, forexample the player's head, may be a real-time image while the remainderof his body might be a cartoon rendering.

When a video enhanced script 54 has displayed the final results in actor operation 100, the user may be prompted by the script 54 in act oroperation 102 whether the script 54 should be executed anew, which wouldreturn the process 90 to act or operation 98. If the script is not to berepeated, then in act or operation 104 the script asks whether a cookieshould be stored. If a cookie is to be stored, that cookie will bestored to a local storage device 7 in act or operation 106.

FIG. 7 shows a flow chart for the process 110 performed by a server 4connected to one or more computer systems 5 across a WAN 2. In act oroperation 112 a user establishes a connection to the server 4 byproviding the IP address of the server 4 to the web browser 8 of theuser's computer system 5. Once the connection is established, the server4 may ask the user to log in by providing a password or some otheridentifying characteristics. In this way user's may be identified to theserver 4 as belonging to one of several possible groups such as paidmembers, holders of trial subscriptions, and first-time visitors. Thegroup to which the user belongs may limit the types of services theserver 4 may perform for that person, or it may prompt the server 4 toissue special offers or run particular banner ads within the user's webbrowser 8.

In act or operation 114 the server 4 determines whether a browserextension module 52 exists within the web browser 8, and if so, whetherit is the most current version available. This sort of information mayalready exist on the server 4 in the form of a cookie. Alternately, theserver 4 may ask for the information from the web browser 8. If theserver 4 has a browser extension module 52 update available the processproceeds to act or operation 116, otherwise it progresses to act oroperation 120. In act or operation 116 an updated browser extensionmodule 52 is made available to the user. If the user decides to downloadthe updated module 52 this is accomplished in act or operation 118. Ifthe user decides to forego the update then the process proceeds to actor operation 120. It should be noted that server 4 may represent aplurality of linked servers, so that the server 4 supplying the browserextension module 52 may not necessarily be the same server 4 that isproviding video enhanced script 54. A system of linked servers are ableto provide greater capacity to handle large volumes of requests andprovide redundancy so that if one server should fail others will take upthe load.

In act or operation 120 the server 4 processes requests from the user bydetermining what is being asked for and then initiating a task inresponse. As the server 4 processes a request in act or operation 120 italso records in a database information about the request, for example,the identity of the user and what was requested. A common occurrencemight be where the user's computer system 5 requests files or data fromthe server 4, or seeks to upload files or data to the server 4, whichwould be performed by act or operation 122. This situation may occurwhere a user is involved in a game with another user and video images ofboth users are being passed between the users via the server 4.

Similarly, the user may request in act or operation 120 that the server4 provide a copy of the browser extension module 52 or of a videoenhanced script 54 for downloading to the user's computer system 5.These tasks are handled, respectively, by act or operation 124 and actor operation 126.

In act or operation 128 the server 4 handles requests for IP addresses,for example when a user requests to be connected directly to anotheruser. In handling such a request the server 4 may need to consult adatabase to determine whether the user is a person with authorization toobtain the requested IP address.

In act or operation 130 the server 4 handles requests to connect usersto other users through the server 4. For instance, a user may wish tojoin a game, but is unaware of any other users presently involved in agame and willing to have others join. To process such a request theserver 4 may have to consult a database listing games currently inprogress and providing their status. Additional information in such adatabase may include cross-referenced lists of people that wouldindicate certain users that should not be connected to other certainusers.

In act or operation 132 the server 4 handles requests requiring secureaccess. In these requests a system administrator, for example, wouldhave to provide a special password to be able to control and observesystem data in act or operation 134. A system administrator, may, forexample, access sensitive databases, upload new versions of software, ormonitor games in progress.

In act or operation 136 the user is offered the choice of logging off ofthe server 4 or making another request of the server 4. If the responseis to stay connected and make a further request, the process 110 returnsto act or operation 120, otherwise the process 110 is completed.

What is claimed is:
 1. A video enhancer for a web browser comprising: alibrary of video enhancement routines, wherein said library of videoenhancement routines includes an ability to identify and track a head ofa person within a field of view of a video camera; a browser extensionmodule operative to couple said library to an operating web browser; avideo enhanced script coupled to said browser extension module toutilize at least one video enhancement routine of said plurality ofvideo enhancement routines in order to provide enhanced video displayswithin said web browser, wherein a real time video image of said personmay interact with a virtual environment executed by said video enhancedscript; and a translator to parse a command into code sent from saidvideo enhanced script to execute said at least one video enhancementroutine of said library of video enhancement routines and including aparameter for executing said at least one video enhancement routine. 2.The video enhancer of claim 1, wherein said library of video enhancementroutines are provided as dynamically linked libraries (DLLs).
 3. Thevideo enhancer of claim 1, wherein said browser extension moduleincludes a multimedia extension module.
 4. The video enhancer of claim1, wherein said video enhanced script is provided by an Applet runningin conjunction with said operating web browser.
 5. The video enhancer ofclaim 2, wherein said DLLs are C++ DLLs.
 6. The video enhancer of claim1, wherein said library of video enhancement routines includes anability to determine when at least two tracked features collide.
 7. Acomputer-implemented system for playing a game, comprising: a firstcomputer; a first video camera coupled to said first computer; a webbrowser operating on said first computer; a video enhancer for said webbrowser including a library of video enhancement routines incommunication with said first video camera, wherein said library ofvideo enhancement routines includes an ability to identify and track ahead of a person within a field of view of said first video camera; abrowser extension module operative to couple said library to saidoperating web browser; a video enhanced script coupled to said webbrowser to utilize at least one video enhancement routine of saidplurality of enhancement routines in order to provide enhanced videodisplays within said web browser, wherein a real time video image ofsaid person may interact with a virtual environment executed by saidvideo enhanced script; and a translator to parse a command into codesent from said video enhanced script to execute said at least one videoenhancement routine of said library of video enhancement routines andincluding a parameter for executing said at least one video enhancementroutine.
 8. The computer-implemented system of claim 7, wherein saidlibrary of video enhancement routines are provided as dynamically linkedlibraries (DLLs).
 9. The computer-implemented system of claim 7, whereinsaid browser extension module includes a multimedia extension module.10. The computer-implemented system of claim 7, wherein said videoenhanced script is provided by an Applet running in conjunction withsaid operating web browser.
 11. The computer-implemented system of claim7, wherein said DLLs are C++ DLLs.
 12. The computer-implemented systemof claim 7, wherein said library of video enhancement routines includesan ability to determine when at least two tracked features collide. 13.The computer-implemented system of claim 7 further comprising a widearea network (WAN) and a server connected to said WAN, said firstcomputer being connected to said WAN.
 14. The computer-implementedsystem of claim 13 wherein said video enhanced script allows said gameto be played as said video enhanced script is being downloaded to saidfirst computer from said server via said WAN.
 15. Thecomputer-implemented system of claim 13, wherein said video enhancedscript is configured to allow a player to send information to saidserver to be retained for future reference following the completion ofsaid game.
 16. The computer-implemented system of claim 13, wherein saidvideo enhanced script is configured to send a cookie to said server tobe retained for future reference following the completion of said game.17. The computer-implemented system of claim 13, wherein said videoenhanced script maintains communication with said remote server throughsaid operating web browser.
 18. The computer-implemented system of claim13 further including a second computer including a web browser.
 19. Thecomputer-implemented system of claim 18 wherein said second computerfurther includes: a video enhancer for said web browser of said secondcomputer, said video enhancer comprising a library of video enhancementroutines, a browser extension module operative to couple said library tosaid web browser of said second computer, and a video enhanced scriptcoupled to said web browser to utilize at least one enhancement routineof said plurality of enhancement routines in order to provide enhancedvideo displays within said browser.
 20. The computer-implemented systemof claim 18 further including a second video camera, wherein saidlibrary of video enhancement routines is in communication with saidsecond video camera.
 21. A method for video enhancement over a wide areanetwork comprising: providing a web browser; providing a video enhancerfor said web browser, said video enhancer including a library of atleast one video enhancement routines, wherein said library of videoenhancement routines includes an ability to identify and track a head ofa person within a field of view of a video camera; a browser extensionmodule operative to couple said library to said web browser, and atleast one video enhanced script coupled to said web browser to utilizeat least one said video enhancement routine, wherein a real time videoimage of said person may interact with a virtual environment executed bysaid at least one video enhanced script; a translator to parse a commandinto code sent from said video enhanced script to execute said at leastone video enhancement routine of said library of at least one videoenhancement routines and including a parameter for executing said atleast one video enhancement routine; opening said web browser; andexecuting said selected video enhanced script.
 22. The method for videoenhancement of claim 21, further including before executing said videoenhanced script: determining whether a more current version of saidvideo enhancer is available; querying whether said more current versionshould be obtained should said more current version be available. 23.The method for video enhancement of claim 22, further including, afterquerying about said more current version, obtaining said video enhancer.24. The method for video enhancement of claim 23, wherein obtaining saidmore current version of said video enhancer further includes:downloading said video enhancer from a server connected to a wide areanetwork; and installing said video enhancer.
 25. The method for videoenhancement of claim 21, wherein executing said selected video enhancedscript further includes: passing a command from said selected videoenhanced script to said browser extension, wherein said commandspecifies at least one video enhancement routine and includes parametersrequired by said at least one video enhancement routine; executing saidat least one video enhancement routine according to said command. 26.The method for video enhancement of claim 21, wherein providing a videoenhancer for said web browser includes: providing a library of at leastone video enhancement routines; providing a browser extension module,said browser extension module including a multimedia extension module incommunication with said web browser, coupled to said library by saidtranslator; and providing at least one video enhanced script coupled tosaid web browser to utilize at least one said video enhancement routine.27. The method for video enhancement of claim 26, wherein executing saidselected video enhanced script includes: passing a command from saidselected video enhanced script to said multimedia extension module,wherein said command specifies at least one video enhancement routineand includes parameters required by said at least one video enhancementroutine; passing said command from said multimedia extension module tosaid translator; and executing said at least one video enhancementroutine according to said command.
 28. An article of manufacturecomprising a computer readable medium containing code segments forproviding a video enhancer for a web browser, said video enhancerincluding: a library of at least one video enhancement routines, whereinsaid library of video enhancement routines includes an ability toidentify and track a head of a person within a field of view of a videocamera; a browser extension module operative to couple said library tosaid web browser; and at least one video enhanced script that may becoupled to said web browser to utilize at least one said videoenhancement routine, wherein a real time video image of said person mayinteract with a virtual environment executed by said at least one videoenhanced script; and a translator to parse a command into code sent fromsaid at least one video enhanced script to execute said at least onevideo enhancement routine of said library of at least one videoenhancement routines and including a parameter for executing said atleast one video enhancement routine.